Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные работы / lab_11_отчёт

.docx
Скачиваний:
0
Добавлен:
11.05.2024
Размер:
364.72 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра «Информатика и вычислительная техника»

ОТЧЕТ 

по лабораторной работе № 11

«ФАЙЛЫ»

Выполнил: 

студент группы ИВТ-234 Кукушкина А.А.

______________________________________

(дата, подпись)

Проверил:

ст. пр. доцент Дорошенко М.С.

_____________________________________________________

(дата, подпись)

Омск 2024

Лабораторная работа №11

Тема: Файлы

Вариант 9

Задание 1

Условие задачи:

Выполнить задачу из лабораторной работы 9, считывая исходные данные из одного файла и записывая полученные результаты в другой текстовый файл. Файл с исходными данными должен быть подготовлен предварительно.

Схема алгоритма:

Текст программы:

#include <iostream>

#include <vector>

#include <fstream>

using namespace std;

int sum(int* mas)

{

int sum = 0;

for (int i = 0; i < sizeof(mas); i++)

{

sum += mas[i];

}

return sum;

}

int pr(int* mas)

{

vector<int> p;

for (int i = 0; i < sizeof(mas); i++)

{

if (mas[i] != 0) p.push_back(mas[i]);

}

int pr = 1;

for (int i = 0; i < p.size(); i++)

{

pr *= p[i];

}

return pr;

}

void func(int* mas, int* sp, int* pp, int* so, int* po)

{

int masp[sizeof(mas)]{};

int maso[sizeof(mas)]{};

for (int i = 0; i < sizeof(mas); i++)

{

if (mas[i] > 0) masp[i] = mas[i];

else if (mas[i] < 0) maso[i] = mas[i];

}

*sp = sum(masp);

*pp = pr(masp);

*so = sum(maso);

*po = pr(maso);

}

int main()

{

setlocale(LC_ALL, "ru");

int sp, pp, so, po, A[6]{}, B[8]{};

ifstream inputFile("C:\\Users\\Алина Кукушкина\\Desktop\\программирование 2 семестр\\Лабораторная работа №11\\lab_11_1\\файлы lab_11_1\\inputFile.txt");

ofstream outputFile("C:\\Users\\Алина Кукушкина\\Desktop\\программирование 2 семестр\\Лабораторная работа №11\\lab_11_1\\файлы lab_11_1\\outputFile.txt");

if (!inputFile || !outputFile)

{

cerr << "Ошибка открытия файлов!";

return 1;

}

for (int i = 0; i < 6; i++)

{

if (!(inputFile >> A[i]))

{

cerr << "Недостаточно чисел в файле!";

return 1;

}

}

func(A, &sp, &pp, &so, &po);

outputFile << "Сумма положительных элементов массива А = " << sp << endl;

outputFile << "Произведение положительных элементов массива А = " << pp << endl;

outputFile << "Сумма отрицательных элементов массива А = " << so << endl;

outputFile << "Произведение отрицательных элементов массива А = " << po << endl << endl;

for (int j = 0; j < 8; j++)

{

if (!(inputFile >> B[j]))

{

cerr << "Недостаточно чисел в файле!";

return 1;

}

}

func(B, &sp, &pp, &so, &po);

outputFile << "Сумма положительных элементов массива B = " << sp << endl;

outputFile << "Произведение положительных элементов массива B = " << pp << endl;

outputFile << "Сумма отрицательных элементов массива B = " << so << endl;

outputFile << "Произведение отрицательных элементов массива B = " << po << endl;

inputFile.close();

outputFile.close();

cout << "Результаты успешно записаны в файл outputFile!" << endl;

return 0;

}

Результаты выполнения программы, выводы:

Результаты, записанные в файл outputFile совпадают с результатами, полученными в ходе выполнения программы 9_2.

Результат выполнения программы 9_2:

Результат выполнения программы 11_1:

Задание 2

Условие задачи:

В текстовом файле S1 записана последовательность из N*K чисел. Написать программу, формирующую в файле S2 матрицу из N строк по K чисел в каждой строке.

Схема алгоритма:

Текст программы:

#include <iostream>

#include <fstream>

#include <vector>

using namespace std;

int main()

{

setlocale(LC_ALL, "RUS");

const int N = 3;

const int K = 4;

ifstream inputFile("C:\\Users\\Алина Кукушкина\\Desktop\\программирование 2 семестр\\Лабораторная работа №11\\lab_11_2\\файлы lab_11_2\\S1.txt");

ofstream outputFile("C:\\Users\\Алина Кукушкина\\Desktop\\программирование 2 семестр\\Лабораторная работа №11\\lab_11_2\\файлы lab_11_2\\S2.txt");

if (!inputFile || !outputFile)

{

cerr << "Ошибка открытия файлов!";

return 1;

}

vector<vector<int>> matrix(N, vector<int>(K));

for (int i = 0; i < N; ++i)

{

for (int j = 0; j < K; ++j)

{

if (!(inputFile >> matrix[i][j]))

{

cerr << "Недостаточно чисел в файле S1!";

return 1;

}

}

}

for (int i = 0; i < N; ++i)

{

for (int j = 0; j < K; ++j)

{

outputFile << matrix[i][j] << " ";

}

outputFile << endl;

}

inputFile.close();

outputFile.close();

cout << "Матрица успешно записана в файл S2.txt";

return 0;

}

Результаты выполнения программы, выводы:

Соседние файлы в папке Лабораторные работы